//通用参数:
//wx_app_session_key: 后台返回的sessionkey;
//wx_app_js_code : wx.login获取。
//wx_app_user_info: wx.getUserInfo(OBJECT)获取 json 格式; 当wx_app_js_code 存在时 才会更新到后台。

const app = getApp();

function getUserIfo(){  // wx_app_user_info:获取 json 格式;包括用户基本信息，和地理经纬度
	
//	if (app.globalData.userInfo) {  
//        
//  } else {  
//    // 由于 getUserInfo 是网络请求，可能会在 Page.onLoad 之后才返回  
//    // 所以此处加入 callback 以防止这种情况  
//   
//    app.userInfoReadyCallback = res => {  
//      this.setData({  
//        userInfo: res.userInfo,  
//        
//      })  
//    }  
//  }
    console.log(app.globalData)
	var userInfo = app.globalData.userInfo ;
	var userLocationInfor = app.globalData.userLocation ;
	if(userLocationInfor){
		var userLocation ={}
	    userLocation['latitude'] = userLocationInfor['latitude']
	    userLocation['longitude'] = userLocationInfor['longitude']
	}else{
		//用户不给地理授权的时候
		var userLocation ={}
	}
	var userData = Object.assign(userInfo,userLocation)
	var userInfoData = {
		wx_app_user_info: JSON.stringify(userData)
	}
	return  userInfoData ;
}

function getCode(resolve, reject){
	let userInfoData = getUserIfo() ;
    wx.login({
        success: function (res) {          
            var wx_code = res.code;
            
            var code_data =  {
                    wx_app_js_code : wx_code
            }
            var code_user_info = Object.assign(code_data,userInfoData);
            console.log(code_user_info)
            resolve(code_user_info);
        },
        fail:function(res){
            console.log('login.微信服务器失败')          
            
        }
    });
}

const login = function(){
        return new Promise((resolve,reject) => {
        var sessionId = wx.getStorageSync('sessionId');   //获取后台
        wx.checkSession({
            success:function(res){
            	if(!sessionId){ //session_key 不存在的时候
            		getCode(resolve, reject);
            	}else{ //session_key存在的时候 而且没有过期
            		console.log('session没有过期')
                    var session_data =  {
                         wx_app_session_key : sessionId
                   }
            		resolve(session_data)
            	}
                
            },
            fail:function(res){
            	console.log('session过期了')
                 getCode(resolve, reject);
            }
        });

    });
}
module.exports = { login }